GdkSurface *surface,
const cairo_region_t *region)
{
+ GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
GtkSnapshot *snapshot;
GskRenderer *renderer;
GskRenderNode *root;
renderer,
surface,
region,
- root);
+ root,
+ priv->render_node);
gsk_renderer_render (renderer, root, region);
GtkUpdate *draw;
gint64 now;
GList *l;
- double native_x, native_y;
if (!GTK_IS_NATIVE (widget))
return;
- /* The coordinates we're getting from GdkSurface API are in GdkSurface coordinate spaces,
- * but we're snapshotting in widget space, so we need to transform */
- gtk_native_get_surface_transform (GTK_NATIVE (widget), &native_x, &native_y);
-
updates = gtk_update_overlay_lookup_for_widget (self, widget, TRUE);
now = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget));
cairo_region_get_rectangle (draw->region, i, &rect);
gtk_snapshot_append_color (snapshot,
&(GdkRGBA) { 1, 0, 0, 0.4 * (1 - progress) },
- &GRAPHENE_RECT_INIT(rect.x - native_x, rect.y - native_y,
+ &GRAPHENE_RECT_INIT(rect.x, rect.y,
rect.width, rect.height));
}
}
GskRenderer *renderer,
GdkSurface *surface,
const cairo_region_t *region,
- GskRenderNode *node)
+ GskRenderNode *root,
+ GskRenderNode *widget_node)
{
GtkInspectorWindow *iw;
iw = gtk_inspector_window_get_for_display (gtk_widget_get_display (widget));
if (iw == NULL)
- return node;
+ return root;
/* sanity check for single-display GDK backends */
if (GTK_WIDGET (iw) == widget)
- return node;
+ return root;
gtk_inspector_recorder_record_render (GTK_INSPECTOR_RECORDER (iw->widget_recorder),
widget,
renderer,
surface,
region,
- node);
+ root);
if (iw->overlays)
{
double native_x, native_y;
snapshot = gtk_snapshot_new ();
- gtk_snapshot_append_node (snapshot, node);
+ gtk_snapshot_append_node (snapshot, root);
gtk_native_get_surface_transform (GTK_NATIVE (widget), &native_x, &native_y);
for (l = iw->overlays; l; l = l->next)
{
- gtk_inspector_overlay_snapshot (l->data, snapshot, node, widget);
+ gtk_inspector_overlay_snapshot (l->data, snapshot, widget_node, widget);
}
gtk_snapshot_restore (snapshot);
- gsk_render_node_unref (node);
- node = gtk_snapshot_free_to_node (snapshot);
+ gsk_render_node_unref (root);
+ root = gtk_snapshot_free_to_node (snapshot);
}
- return node;
+ return root;
}
gboolean
GskRenderer *renderer,
GdkSurface *surface,
const cairo_region_t *region,
- GskRenderNode *node);
+ GskRenderNode *root,
+ GskRenderNode *widget_node);
gboolean gtk_inspector_handle_event (GdkEvent *event);
G_END_DECLS